var jwt = require('jsonwebtoken')
var secret = 'alsdkjfalsdufioj4654asdfasdf'  //服务器私钥,签发与验证需要一致
//中间件函数 用于敏感操作 此方法为验证token
function checkToken(req,res,next){
  let {token} = req.headers;
  jwt.verify(token, secret, (err, decoded) => {
    if (err) { //token合法性验证失败
      res.status(401).send({
        code: 401,
        msg: '非法token，请登录'
      })
      return
    }
    let { time, limit } = decoded//token解析后的结果
    let nowTime = Date.now()  //当前时间
    console.log("token是否过期", nowTime - time > limit)
    if (nowTime - time > limit) { //token过期判断
      res.status(403).send({
        code: 403,
        msg: 'token已过期，请重新登录'
      })
      return
    }
    next()
  })
}

module.exports = {
  checkToken
}